/*
 * @(#)AttributeSet.java	1.0 06/22/11
 *
 * Copyright 2011 Ice Spring All rights reserved.
 * Mrogrape/Javaliang.com PROPRIETARY.
 */
package com.mrogrape.util;


/**
 * 此接口标识一个属性集对象。
 * 
 * <p>
 * 实现了此接口的类的对象可以方便的供其他对象设置和提取属性。
 * 
 * @param <K> 允许的属性键的类型。
 * @param <V> 允许的属性值的类型。
 * @version 1.0 06/22/11
 */
public interface AttributeSet<K, V> {

	/**
	 * 设置属性。
	 * 
	 * @param key 属性键。
	 * @param value 属性值。
	 * @return 如果有旧值则返回旧值，否则返回null。
	 */
	public V setAttribute(K key , V value);

	/**
	 * 根据键获取值。
	 * 
	 * @param key 属性键。
	 * @return 值，如果不存在应该为空。
	 */
	public V getAttribute(K key);

}
